/* ---------- Node依赖 ---------- */
import path from "node:path/posix" // 路径模块

/* ---------- 第三方依赖 ---------- */
import { defineConfig } from "vite"
import compression from "vite-plugin-compression"

/* ---------- 配置文件 ---------- */
import pkg from "./package.json"

/* ---------- 导出配置 ---------- */
export default defineConfig({
  // 构建
  build: {
    outDir: path.join(__dirname, "build"), // 输出目录

    // 库模式
    lib: {
      entry: "index.js", // 输入文件
      name: pkg.name, // 包名
      formats: ["umd"], // 构建模式
      fileName: ($) => `${pkg.name}.${$}.js` // 输出文件名
    }
  },

  // 常量
  define: {
    __AES_16KEY__: JSON.stringify("KVDATYPW8CANUH89") // 默认密码
  },

  // 插件
  plugins: [
    // 压缩
    compression(
      {
        algorithm: "gzip", // 压缩模式
        deleteOriginFile: false, // 是否保留原文件
        threshold: 1024, // 超过此大小则压缩
        verbose: false, // 禁止控制台输出结果
      }
    )
  ]
})